# レッスン 2: 静止状態でズボンをシミュレートする

nCloth をアニメートされたキャラクタ上でシミュレートする前に、レストまたは静止状態のキャラクタで nCloth が正しくシミュレートされるようにすることが重要です。nCloth を静止させると、シミュレーションの問題をより簡単に特定できるようになり、シミュレーションが複雑になりすぎて診断が難しくなる前に適切な調整を施すことができます。

このレッスンでは、以下の操作を行います。

- ポイント対サーフェス(Point to Surface)コンストレイントを作成し、ズボンを nRigid_Body オブジェクトにコンストレイントします。
- 伸長の抵抗(Stretch Resistance)と圧縮の抵抗(Compression Resistance)を編集します。
- ダンプ(Damp)を編集し、シミュレートされた nCloth をレスト状態にするまでに要する合計時間を短縮します。

## レッスンのセットアップ

説明どおりにレッスンを進めるために、レッスンを開始する前に次の手順を実行します。

1. nCloth の高度なテクニックのレッスン データをダウンロードしていない場合は、http://www.autodesk.co.jp/maya-advancedtechniques からダウンロードします。その後、nClothAdvancedTutorials ディレクトリを Maya プロジェクトとして設定します。
2. Character_LowRes_2.mb という名前のシーン ファイルを開きます。

   このファイルは、Maya プロジェクトとして設定した nClothAdvancedTutorials ディレクトリ内にあります。

## ズボンを胴体にコンストレイントする

シミュレーションを再生すると、nCloth ズボンは胴体と靴のオブジェクトに衝突するようになりましたが、ズボンがキャラクタの胴体からずり落ちているのがわかります。ズボンがずり落ちないようにするには、ポイント対サーフェス(Point to Surface)コンストレイントを作成し、nCloth ズボン オブジェクトを nRigid_Body オブジェクトのウエストの領域にコンストレイントします。詳細については、Maya ヘルプの「nucleus オブジェクトのコンストレイント」を参照してください。

ズボンをキャラクタの胴体にコンストレイントするには

1. シーン ビューで nCloth ズボン オブジェクトを選択します。
2. nCloth を右クリックして、表示されるマーキング メニューから頂点(Vertex)を選択します。
3. nCloth ズボンの上部で、最初の 2 行の頂点を選択します。

   カメラをドリーおよびタンブルして、この最初の 2 行の頂点のみが選択されていることを確認します。

4. シーン ビューで、Shift キーを押しながら nRigid_Body オブジェクト(胴体)を選択し、nConstraint > ポイント対サーフェス(nConstraint > Point to Surface)を選択します。

   このレッスンでは、dynamicConstraintShape のアトリビュートは既定値のままにしておきます。

## ダイナミック プロパティ(Dynamic Properties)アトリビュートを編集する

シミュレーションを再生すると、次のことがわかります。

- nCloth ズボンは既定のダイナミック プロパティ(Dynamic Properties)設定を使用してシミュレートします。しかし、その動作がキャラクタの衣装に適したタイプの素材に見えないことがあります。
- nCloth ズボンはシミュレーションの 40 フレーム後(フレーム 1040)にレスト状態になります。

静止しているキャラクタ上で nCloth をシミュレートする場合は、nCloth に作用するフォースは重力と風のみのため、nCloth のダイナミック プロパティ(Dynamic Properties) アトリビュートを編集しても、クロスの動作はわずかに変更されるだけです。アニメートされたキャラクタ上で nCloth をシミュレートする場合、クロスの動作の変化がより目立ちます。これは、重力と風のフォースにより速度、衝突、自己衝突が生成され始め、nCloth が別の領域で別の方向に変形されるようになるからです。そのため、シミュレーションの設定を簡略化するために、スタティック シミュレーションを使用してダイナミック プロパティ(Dynamic Properties) アトリビュートを編集し、その nCloth に特有の性質を付加します。

伸長の抵抗(Stretch Resistance)と圧縮の抵抗(Compression Resistance)は、クロスの性質を定義するうえで重要なアトリビュートです。これらのプロパティは、nCloth メッシュの各四角上でリンクとクロス リンクの抵抗を反復します。伸長の抵抗(Stretch Resistance)は、重力と風などの nucleus フォースの結果として発生する引き付けや伸長のエフェクトを安定させる働きをします。圧縮の抵抗(Compression Resistance)は、 nucleus フォースの結果として発生するリンクに対する圧縮や圧搾のエフェクトを安定させる働きをします。

たとえば、重いデニム、黄麻布、または厚い革のように動作する nCloth を作成するには、より大きい伸長の抵抗(Stretch Resistance)値が必要ですが、シルクや綿などの比較的軽い素材では、より小さい伸長の抵抗(Stretch Resistance)を使用します。

これらの 2 つのアトリビュートに大きい値を設定するほど、nCloth のデフォメーションに対する抵抗は大きくなりますが、シミュレーション時間は長くなる傾向があります。伸長の抵抗(Stretch Resistance)と 圧縮の抵抗(Compression Resistance)の詳細については、Maya ヘルプの「nCloth ダイナミック プロパティ」を参照してください。

1 つのダイナミック プロパティ(Dynamic Properties)アトリビュートを調整すると、他のアトリビュートに影響する場合があることに注意してください。たとえば、nCloth オブジェクトの質量(Mass)を増やして重くすると、伸長の抵抗(Stretch Resistance)もこれに合わせて大きくする必要があります。nCloth オブジェクトのダイナミック プロパティ(Dynamic Properties) アトリビュートの編集では、一度に 1 つのアトリビュートを設定し、それからシミュレーションを再生してその調整が nCloth にどのように作用するか確認する方法が役立ちます。

伸長の抵抗(Stretch Resistance)と圧縮の抵抗を編集するには

1. アトリビュート エディタ(Attribute Editor)で、nCloth_PantsShape タブを選択します。
2. ダイナミック プロパティ(Dynamic Properties) セクションで、伸長の抵抗(Stretch Resistance)を 70 に設定します。
3. 圧縮の抵抗(Compression Resistance)を 5 に設定します。
4. シミュレーションを再生します。

シミュレーションを再生すると、シミュレーションの 40 フレーム後に nCloth ズボンがレスト状態になることがわかります。ダンプ(Damp)を大きくすると、シミュレートされる nCloth はより早くレスト状態になります。これは、nucleus 重力(Gravity)の引き付けに対して働く nCloth の伸長の抵抗(Stretch Resistance)で生成されるエネルギーがダンプによって発散されるためです。伸長のダンプ(Stretch Damp)を使用してこのエネルギーを発散させることもできます。

ダンプ(Damp)を編集するには

1. アトリビュート エディタ(Attribute Editor)で、nCloth_PantsShape タブを選択します。
2. ダイナミック プロパティ(Dynamic Properties)セクションで、ダンプ(Damp)を 1 に設定します。
3. シミュレーションを再生します。

## 考慮すべきその他のアトリビュート設定

シミュレーションを進める前に、各 nCloth とパッシブ衝突オブジェクトの衝突の厚み(Thickness)アトリビュートを調整して、これらの間の衝突の検出を最適化するように考慮してください。ラップ デフォーマを含むワークフローを使用している場合は、nRigid_Body オブジェクトや nRigid_Shoes オブジェクトとの相互貫通を引き起こさずに、ラップされるメッシュ用の空間を nCloth 衝突ボリューム(厚み(Thickness))に確保できることを確認してください。